ARM: GICv3 ITS: introduce ITS command handling
authorAndre Przywara <andre.przywara@arm.com>
Fri, 7 Apr 2017 22:07:58 +0000 (23:07 +0100)
committerStefano Stabellini <sstabellini@kernel.org>
Fri, 7 Apr 2017 22:15:48 +0000 (15:15 -0700)
commit14b27472a8dde48e87d23883fceb08703b48a3fb
tree3b943c2f68d42bf80d7da89cd2fd12d90a460a98
parent8ed8d21373bef3ea9ddc9d8594ad71aa1b0788f1
ARM: GICv3 ITS: introduce ITS command handling

To be able to easily send commands to the ITS, create the respective
wrapper functions, which take care of the ring buffer.
The first two commands we implement provide methods to map a collection
to a redistributor (aka host core) and to flush the command queue (SYNC).
Start using these commands for mapping one collection to each host CPU.
As an ITS might choose between *two* ways of addressing a redistributor,
we store both the MMIO base address as well as the processor number in
a per-CPU variable to give each ITS what it wants.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/arm/gic-v3-its.c
xen/arch/arm/gic-v3-lpi.c
xen/arch/arm/gic-v3.c
xen/include/asm-arm/gic_v3_defs.h
xen/include/asm-arm/gic_v3_its.h